/**
 * 
 */
package com.scpii.universal.service;


import java.io.IOException;

import com.scpii.universal.dto.UserInfoDto;
import com.scpii.universal.hibernate.entity.AppStyleImgTab;
import com.scpii.universal.hibernate.entity.AppTab;
import com.scpii.universal.hibernate.entity.AppUpdateTab;

/**
 * genericWeb
 * @author weny
 * 2012-7-8下午09:06:42
 */
public interface AppService extends BaseService<AppTab, Integer> {
	/**
	 * 保存应用
	 * @param jsonData
	 * @param userInfo
	 * @author liuhj
	 * 2012-7-10下午02:56:46
	 */
	public Integer save(AppTab appTab,UserInfoDto userInfo);
	
	/**
	 * 创建应用及相关数据处理
	 * @param json
	 * @param user
	 * @param webAppsRealPath
	 * @param imgBasePath
	 * @return
	 * @author liuhj
	 * 2012-7-18下午05:57:34
	 */
	public int[] saveApp(String json, UserInfoDto user,
			String webAppsRealPath, String imgBasePath);
	
	/**
	 * 更新应用
	 * @param json
	 * @param user
	 * @param webAppsRealPath 
	 * @param imgBasePath 
	 * @author liuhj
	 * 2012-7-19下午04:39:59
	 */
	public void updateApp(String json,UserInfoDto user, String webAppsRealPath, String imgBasePath);
	
	/**
	 * 获取应用名称
	 * @param appId
	 * @return
	 * @author liuhj
	 * 2012-8-2下午04:18:10
	 */
	public String getAppName(int appId);
	
	/**
	 * 查询应用信息
	 * @param appId
	 * @param properties
	 * @return
	 * @author liuhj
	 * 2012-8-11下午08:14:05
	 */
	public AppTab getAppInfo(int appId,String[] properties);
	
	/**
	 * 根据应用风格查询风格图片
	 * @param styleId
	 * @param type 
	 * @return
	 * @author liuhj
	 * 2012-8-11下午08:36:05
	 */
	public AppStyleImgTab getAppStyleImgById(int styleId, int type);
	
	/**
	 *  更新应用版本的URL
	 * @param downloadUrl
	 * 			下载地址
	 * @param installUrl
	 * 			直接安装地址
	 * @param intAppUpdateId 
	 * @author liuhj
	 * 2012-8-15下午06:44:26
	 */
	public void updateAppDownloadUrl(String downloadUrl,String installUrl, int intAppUpdateId);
	
	/**
	 * 保存应用版本更新
	 * @param user
	 * @param type
	 * @return
	 * @author liuhj
	 * 2012-8-22下午05:21:34
	 */
	public AppUpdateTab saveAppVersionUpdate(UserInfoDto user,int type);
	
	/**
	 * 检测是否能生成应用
	 * @return
	 * @author liuhj
	 * 2012-8-22下午06:43:30
	 * @throws IOException 
	 */
	public boolean checkIfCanproduceApp(UserInfoDto user);
	
	/**
	 * 应用版本状态更新[是否需要更新]
	 * @author Taylor
	 * 2012-10-18 下午04:59:38
	 * @param appUpd
	 * @param state
	 * void
	 */
	public void updateVersionState (AppUpdateTab appUpd,int state);
	
	/**
	 * 更新IOS证书
	 * @author Taylor
	 * 2012-11-27 上午10:31:09
	 * @param jsonData
	 * @param appId
	 * void
	 */
	public void updateIosCerFile(String jsonData,int appId);
}
